{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "d8b19e2e",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3, 4, 5],\n",
       "       [2, 3, 4, 5, 6],\n",
       "       [3, 4, 5, 6, 7]])"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "np.array([[1,2,3,4,5],[2,3,4,5,6],[3,4,5,6,7]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "6ef1650c",
   "metadata": {},
   "outputs": [],
   "source": [
    "import random\n",
    "import time\n",
    "import numpy as np\n",
    "a = []\n",
    "for i in range(1000):\n",
    "    a.append(random.random())\n",
    "    \n",
    "# %time sum1 = sum(a)\n",
    "\n",
    "b = np.array(a)\n",
    "\n",
    "# %time sum2=np.sum(b)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "40af81b6",
   "metadata": {},
   "source": [
    "# 均匀分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "48c607a0",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 2000x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 均匀分布\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "# 准备数据0\n",
    "x = np.random.uniform(500,200000,100000)\n",
    "\n",
    "plt.figure(figsize=(20,8), dpi=100)\n",
    "plt.hist(x,bins=100)\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3f481627",
   "metadata": {},
   "source": [
    "# 正态分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "2abb45f3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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ewQgAAAAAABAcgQgAFDF9CwEAChvztcAYOQypW4AAFA+XGADANzYWJ8z9e6vffOyMd0vAFQ6FSAAAAAAAEByBCAAkCATZwIAVIahztuczwHA6AhAAAAAAAqgXAKLcmkHAJSaAAQAAAAAAEiOSdABAAAAxsBQlRkmOgeAwlMBAgCJMO8HAED1cN4HADcmAAEAAAAAAJJjCCwASFzf3oHtm5fpLQgAUMacqwFA4agAAYAyU8ihrFxAAwCkw7kdAORHAAIAAAAAACRHAAIAAAAAACRHAAIAFcBwBwAADMa5IgAMrKABSDabjZqammseEREHDx6MefPmRV1dXSxdujTefvvtQu4WAAAAAADgGgWvANm9e3ecO3cu9+ju7o77778/7r333mhra4u6urpYs2ZNoXcLAAAAQD+qQwCoZplCb3DOnDnR0NCQe/6rX/0qzp49G+vXr49MJhPr1q2LxYsXx8WLF2PChAmF3j0AAAAAAEDhK0DWr18f48ePj3nz5sXhw4dj3759sXDhwshk3sta5s2bF11dXXHw4MEB33/58uW4cOHCNQ8AAAAAhpZtalXxAQB9FDwAmTNnTrS1tcWdd94ZX/3qV+PkyZMxderU/9vhuHExefLkOHXq1IDv37RpU9TX1+ces2fPLnQTAaAiDHXx6sIWAKCylTKs6L/v4bZFwAJApSnoEFj79u2LmTNnRkTE448/HnfddVfccccd0dPTc816PT09uQnS+2tubo61a9fmnl+4cEEIAgAAAAAA5KWgAUhv+BERuXlAbrnllti7d2/u9a6urujs7Ixp06YNuI3a2tqora0tZLMAAAAAAIAqU7AhsFpbW+NjH/tY7vmxY8di/Pjx8elPfzoOHDgQV69ejYiIQ4cORSaTifnz5xdq1wBQ8QwnAABAvpxDAsDQChaAfPzjH4+33norfvjDH8abb74ZmzZtiocffjgWL14cN910U6xbty6OHz8eGzZsiPvuuy/Gjx9fqF0DAAAAAABco2AByM033xw/+clPYsuWLbFgwYKYOXNmPP300zFu3Lh4/vnnY9euXTF37ty4dOlStLS0FGq3AFCRRtJbb7jr6wUIAAAAUOA5QO6555645557rnt9wYIF8dprrxVyVwAAAABVpxw7u2SbWqN987JSNwMArlOwChAAAAAAAIByUdAKEACoBr297sail1uhe/iV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",
      "text/plain": [
       "<Figure size 2000x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 方差 \n",
    "# 标准差\n",
    "x2 = np.random.normal(3,1, 100000)\n",
    "plt.figure(figsize=(20,8), dpi=100)\n",
    "plt.hist(x2, bins=1000)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "id": "2024f9d3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[5.67116913, 6.33787673, 5.11810014, 6.28076724, 6.76729876],\n",
       "       [5.82174242, 5.92785077, 4.44606367, 4.42375202, 5.81891449],\n",
       "       [5.08340938, 5.25713309, 3.7659462 , 5.30439006, 5.98231974]])"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "chunk_change = np.random.normal(5,1,(3,5))\n",
    "chunk_change"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "id": "2be4176f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[5.67116913, 6.33787673, 5.11810014],\n",
       "       [6.28076724, 6.76729876, 5.82174242],\n",
       "       [5.92785077, 4.44606367, 4.42375202],\n",
       "       [5.81891449, 5.08340938, 5.25713309],\n",
       "       [3.7659462 , 5.30439006, 5.98231974]])"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "chunk_change.reshape([5,-1])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "id": "edd28131",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[5.67116913, 6.33787673, 5.11810014],\n",
       "       [6.28076724, 6.76729876, 5.82174242],\n",
       "       [5.92785077, 4.44606367, 4.42375202],\n",
       "       [5.81891449, 5.08340938, 5.25713309],\n",
       "       [3.7659462 , 5.30439006, 5.98231974]])"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "chunk_change.resize([5,3])\n",
    "chunk_change"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "id": "1f6f7ad7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[5.67116913, 6.28076724, 5.92785077, 5.81891449, 3.7659462 ],\n",
       "       [6.33787673, 6.76729876, 4.44606367, 5.08340938, 5.30439006],\n",
       "       [5.11810014, 5.82174242, 4.42375202, 5.25713309, 5.98231974]])"
      ]
     },
     "execution_count": 96,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "chunk_change.T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "id": "938360e4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[5.67116913, 6.33787673, 5.11810014],\n",
       "       [6.28076724, 6.76729876, 5.82174242],\n",
       "       [5.92785077, 4.44606367, 4.42375202],\n",
       "       [5.81891449, 5.08340938, 5.25713309],\n",
       "       [3.7659462 , 5.30439006, 5.98231974]])"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "chunk_change"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "id": "e9c516f1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[5, 6, 5],\n",
       "       [6, 6, 5],\n",
       "       [5, 4, 4],\n",
       "       [5, 5, 5],\n",
       "       [3, 5, 5]])"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "chunk_change.astype(np.int32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "id": "3529a3ea",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\10459\\AppData\\Local\\Temp\\ipykernel_18244\\2076755165.py:1: DeprecationWarning: tostring() is deprecated. Use tobytes() instead.\n",
      "  chunk_change.tostring()\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "b'\\xbfi\\xed\\xf5F\\xaf\\x16@\\xe0\\x86r[\\xfcY\\x19@\\x90\\xbeo>\\xefx\\x14@\\xc0k\\xber\\x81\\x1f\\x19@\\xa5\\x1b\\xcf\\xc3\\xb6\\x11\\x1b@f\\x81\\x0e\\xd8vI\\x17@CqW\\x83\\x1e\\xb6\\x17@\\x18V\\xe3\\xe9\\xc4\\xc8\\x11@\\xeaG\\x82\\x0c\\xec\\xb1\\x11@Q\\xa0l\\x85\\x91F\\x17@\\xcdf\\xafDiU\\x14@\\x19\\xb4\\xa6\\xe5M\\x07\\x15@\\xbc\\xebsf\\xa8 \\x0e@\\xf9s\\x15\\x07\\xb27\\x15@\\xbf\\x81\\xaf9\\xe5\\xed\\x17@'"
      ]
     },
     "execution_count": 99,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "chunk_change.tostring()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "id": "4f0302c3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 2, 3, 4, 5, 6, 7, 8, 9])"
      ]
     },
     "execution_count": 104,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "repeat_arr = np.array([[1,2,3,4,5], [3,4,5,6,7], [5,6,7,8,9]])\n",
    "np.unique(repeat_arr)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "020fa282",
   "metadata": {},
   "source": [
    "# 类型修改"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "id": "c71f3cba",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[4.73854164, 5.05916649, 4.31614289, 3.41257346, 5.93152004],\n",
       "       [5.06768878, 6.46837162, 4.15421213, 3.77438648, 5.04014989],\n",
       "       [5.90806975, 3.84677863, 5.32136364, 5.80409205, 4.76051505],\n",
       "       [4.46343657, 4.50561513, 4.44454292, 3.19491161, 5.46799495],\n",
       "       [5.58482561, 7.13714219, 5.00630479, 6.69946594, 3.80865622]])"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "chunk_arrar = np.random.normal(5, 1, (5,5))\n",
    "chunk_arrar"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "id": "2a5550ab",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[False,  True, False, False,  True],\n",
       "       [ True,  True, False, False,  True],\n",
       "       [ True, False,  True,  True, False],\n",
       "       [False, False, False, False,  True],\n",
       "       [ True,  True,  True,  True, False]])"
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "chunk_arrar > 5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "id": "cd2bac24",
   "metadata": {},
   "outputs": [],
   "source": [
    "chunk_arrar[chunk_arrar>5] = 1 # 满足要求直接被赋值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "id": "049a8e4b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[4.73854164, 1.        , 4.31614289, 3.41257346, 1.        ],\n",
       "       [1.        , 1.        , 4.15421213, 3.77438648, 1.        ],\n",
       "       [1.        , 3.84677863, 1.        , 1.        , 4.76051505],\n",
       "       [4.46343657, 4.50561513, 4.44454292, 3.19491161, 1.        ],\n",
       "       [1.        , 1.        , 1.        , 1.        , 3.80865622]])"
      ]
     },
     "execution_count": 113,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "chunk_arrar"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "id": "73417054",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[False,  True,  True]])"
      ]
     },
     "execution_count": 117,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr = np.array([[1,2,3]])\n",
    "arr >= 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "id": "8af19061",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3]])"
      ]
     },
     "execution_count": 118,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "id": "d82ccb3f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 119,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.all(arr>0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "id": "4486c681",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 120,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.all(arr>2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "id": "4172422d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 121,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.any(arr>2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "id": "8bbce1bd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 122,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.any(arr>4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "id": "9d2310f8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3]])"
      ]
     },
     "execution_count": 123,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "id": "11194f09",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-10, -10,  10]])"
      ]
     },
     "execution_count": 124,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.where(arr>2, 10, -10) # 三元运算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "id": "ef168206",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3]])"
      ]
     },
     "execution_count": 125,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "id": "6a1bae9e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3"
      ]
     },
     "execution_count": 126,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr.max()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "73e577cd",
   "metadata": {},
   "source": [
    "# 数组运算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "81f68248",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "\n",
    "a = np.array([2,4,6,8])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "5a726dec",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3, 4]])"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "4ae13e10",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[2, 3, 4, 5]])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a + 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "b08da349",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[2, 4, 6, 8]])"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a * 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "738bfd68",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1., 2., 3., 4.])"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a / 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "8c941bd1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[10, 10, 10, 10, 10],\n",
       "       [10, 10, 10, 10, 10]])"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr1 = np.array([[1,2,3,4,5],[5,4,3,2,1]])\n",
    "arr2 = np.array([[9,8,7,6,5],[5,6,7,8,9]])\n",
    "arr1 + arr2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "d1dd7a9d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 60,  70,  80],\n",
       "       [ 82,  96, 110]])"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr1 = np.array([[1,2,3,4],[2,3,4,5]])\n",
    "arr2 = np.array([[4,5,6],[5,6,7],[6,7,8],[7,8,9]])\n",
    "np.dot(arr1, arr2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "9944b3da",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3, 4],\n",
       "       [2, 3, 4, 5]])"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.dot(arr1, 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "ccd86709",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 60,  70,  80],\n",
       "       [ 82,  96, 110]])"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.matmul(arr1,arr2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "5945bb0d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2, 4)"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr1.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "91ef3952",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(4, 3)"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr2.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "8695f993",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr1.ndim"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "30dba5fe",
   "metadata": {},
   "outputs": [],
   "source": [
    "a =  [1,2,3]\n",
    "b = [4,5,6]\n",
    "c = [7,8,9]\n",
    "arr3 = np.array([[[1,2, 4],[3,4,4],[5,6,1]],[[1,2, 4],[3,4,4],[5,6,5]]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "ca8c86c1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr3.ndim"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "id": "1fde17c6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dtype('int32')"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr3.dtype"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "a71dea0b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "18"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr3.size"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "384430c5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr3.ndim"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "ba03aade",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr3.itemsize"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "id": "1c9a6074",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dtype('int32')"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr3.dtype"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "id": "d3d42b61",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10., 11., 12.,\n",
       "       13., 14., 15., 16., 17., 18., 19., 20., 21., 22., 23., 24., 25.,\n",
       "       26., 27., 28., 29., 30., 31., 32., 33., 34., 35., 36., 37., 38.,\n",
       "       39., 40., 41., 42., 43., 44., 45., 46., 47., 48., 49.])"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.linspace(0, 49)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "eeb35dd2",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.4"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
